package com.wd.attend.service;

import java.util.List;
import com.wd.attend.domain.AttendReport;
import com.wd.attend.domain.CalendarData;
import com.wd.attend.domain.DeptAttendReport;

/**
 * 考勤统计Service接口
 * 
 * @author liumingkun
 * @date 2023-11-21
 */
public interface IAttendReportService 
{
    /**
     * 查询考勤统计
     * 
     * @param reportId 考勤统计主键
     * @return 考勤统计
     */
     AttendReport selectAttendReportByReportId(Long reportId);

    /**
     * 查询考勤统计列表
     * 
     * @param attendReport 考勤统计
     * @return 考勤统计集合
     */
     List<AttendReport> selectAttendReportList(AttendReport attendReport);

    /**
     * 查询考勤统计列表
     *
     * @param deptAttendReport 考勤统计
     * @return 考勤统计集合
     */
    List<DeptAttendReport> selectDeptAttendReport(DeptAttendReport deptAttendReport);

    /**
     * 新增考勤统计
     * 
     * @param attendReport 考勤统计
     * @return 结果
     */
     int insertAttendReport(AttendReport attendReport);

    /**
     * 修改考勤统计
     * 
     * @param attendReport 考勤统计
     * @return 结果
     */
     int updateAttendReport(AttendReport attendReport);

    /**
     * 批量删除考勤统计
     * 
     * @param reportIds 需要删除的考勤统计主键集合
     * @return 结果
     */
     int deleteAttendReportByReportIds(Long[] reportIds);

    /**
     * 删除考勤统计信息
     * 
     * @param reportId 考勤统计主键
     * @return 结果
     */
     int deleteAttendReportByReportId(Long reportId);

    void attendReportJob(Integer attendYear,Integer attendMonth);

    List<CalendarData> getStaffReport(AttendReport attendReport);
}
